package br.com.diego.system.view.action.permissao;

import br.com.diego.system.controller.cadastropermissao.CadastroPermissaoBuilder;
import br.com.diego.system.controller.cadastropermissao.CadastroPermissaoFactory;
import br.com.diego.system.controller.cadastropermissao.CadastroPermissaoVo;
import br.com.diego.system.view.action.AbstractDiegoAction;
import br.com.diego.system.view.navigator.Navigator;
import br.com.diego.system.view.navigator.permissao.Pages;
import org.springframework.beans.factory.annotation.Autowired;

public class CadastroPermissaoAction extends AbstractDiegoAction {

    @Autowired
    private CadastroPermissaoBuilder cadastroPermissaoBuilder;
    
    @Autowired
    private CadastroPermissaoFactory cadastroPermissaoFactory;
    
    private CadastroPermissaoVo cadastroPermissaoVo = new CadastroPermissaoVo();
    
    public void limpar() {
        cadastroPermissaoVo = new CadastroPermissaoVo();
    }

    public void salvar() {
        try {
            cadastroPermissaoBuilder.buildSalvar(cadastroPermissaoVo);
            setMensagem("Salvo com sucesso!");
            limpar();
        } catch (IllegalArgumentException e) {
            setMensagem(e.getMessage());
        }
    }

    public void deletar() {
        try {
            cadastroPermissaoBuilder.buildDeletar(cadastroPermissaoVo.getPermissaoVo());
            setMensagem("Deletado com sucesso");
            limpar();
        } catch (IllegalArgumentException e) {
            setMensagem(e.getMessage());
        }
    }
    
    public String consultaPermissao() {
        Navigator.setPage(Pages.cadastroPermissao.name());
        return Pages.consultaPermissao.name();
    }

    public CadastroPermissaoVo getCadastroPermissaoVo() {
        return cadastroPermissaoVo;
    }

    public void setCadastroPermissaoVo(CadastroPermissaoVo cadastroPermissaoVo) {
        this.cadastroPermissaoVo = cadastroPermissaoVo;
    }
    
}